/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cda.pager;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 *
 * @author Shyzkanza
 */
public class ClientBDDFidelite {
    private Document document;
    private Element racine;

    /**
     * Fonction permettant d'ouvrir le fichier. Elle initialise la variable
     * document avec le fichier XML complet et racine avec l'element racine du
     * document XML.
     *
     * @author Jessy Bonnotte
     */
    private void Ouverture(String nomDoc) {
        SAXBuilder sxb = new SAXBuilder();
        try {
            document = sxb.build(new File("/sdcard/cda.memo/" + nomDoc + ".xml"));
        } catch (Exception e) {
            System.err.println(e.toString());
        }
        racine = document.getRootElement();
    }

    /**
     * Enregistre le fichier XML.
     *
     * @author Jessy Bonnotte
     */
    private void Enregistre(String nomDoc) {
        try {
            XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
            sortie.output(document, new FileOutputStream("/sdcard/cda.memo/" + nomDoc + ".xml"));
        } catch (java.io.IOException e) {
            System.err.println(e.toString());
        }
    }
    
    public void addCarteFidelite(String magasin, String typeCode, String code, String nomPersonne){
        Ouverture("Fidelite");
        
        String nb;
        Element temp = null;

        if (racine.getChildren().isEmpty()) {
            nb = "1";
        } else {
            List element = racine.getChildren("fidelite");
            temp = (Element) element.get(element.size() - 1);

            nb = String.valueOf(Integer.parseInt(temp.getAttributeValue("id")) + 1);
        }
        
        temp = new Element("fidelite");
        temp.setAttribute("id", nb);
        temp.setAttribute("magasin", magasin);
        temp.setAttribute("type", typeCode);
        temp.setAttribute("code", code);
        temp.setAttribute("nom", nomPersonne);
        
        racine.addContent(temp);
        
        Enregistre("Fidelite");
    }
    
    public List<String[]> getListeCarte(){
        List<String[]> retour = new ArrayList<String[]>();
        
        Ouverture("Fidelite");
        
        List element = racine.getChildren("fidelite");
        Element temp;
        
        for (int i = 0; i < element.size(); ++i) {
            temp = (Element) element.get(i);
            
            String[] donnee = new String[5];
            donnee[0] = temp.getAttributeValue("id");
            donnee[1] = temp.getAttributeValue("magasin");
            donnee[2] = temp.getAttributeValue("type");
            donnee[3] = temp.getAttributeValue("code");
            donnee[4] = temp.getAttributeValue("nom");
            retour.add(donnee);   
        }
        
        return retour;
    }
}
